package com.woniu.controller;

import com.woniu.service.VisitService;
import com.woniu.utils.ResultObj;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDate;
import java.time.format.DateTimeParseException;

@RestController
@RequestMapping("api/visit")
public class VisitController {

    @Autowired  // 自动注入Service
    private VisitService visitService;

    /**
     * 记录访问接口
     * @param request HTTP请求
     * @return 统一响应结果
     */
    @PostMapping("/recordVisit")
    public ResultObj recordVisit(HttpServletRequest request) {
        visitService.recordVisit(request);
        return ResultObj.ok("已经记录访问用户！");
    }

    /**
     * 查询访问量接口
     * @param date 日期字符串（格式：yyyy-MM-dd）
     * @return 包含访问量的统一响应结果
     */
    @GetMapping("/count")
    public ResultObj getVisitCount(@RequestParam(required=false) String date) {
        // 默认使用当天日期
        LocalDate queryDate = LocalDate.now();
        // 如果传入了日期参数
        if (StringUtils.hasText(date)) {
            try {
                queryDate = LocalDate.parse(date);
            } catch (DateTimeParseException e) {
                // 日期格式错误时返回400错误
                return ResultObj.error().msg("日期格式错误");
            }
        }
        int count = visitService.getVisitCountByDate(queryDate);
        return ResultObj.ok(count);
    }
}
